home *** CD-ROM | disk | FTP | other *** search
- # Source Generated with Decompyle++
- # File: in.pyc (Python 2.6)
-
- import string
- from xml.sax import saxutils
- from ElementTree import *
- import re
- import gtk
- from gtk import gdk
-
- def message_dialog(par, typ, msg):
- d = gtk.MessageDialog(par, gtk.DIALOG_MODAL, typ, gtk.BUTTONS_OK, msg)
- d.set_property('use-markup', True)
- d.run()
- d.destroy()
-
-
- def compute_indentation(view, piter):
- line = piter.get_line()
- start = view.get_buffer().get_iter_at_line(line)
- end = start.copy()
- ch = end.get_char()
- while ch.isspace() and ch != '\r' and ch != '\n' and end.compare(piter) < 0:
- if not end.forward_char():
- break
-
- ch = end.get_char()
- if start.equal(end):
- return ''
- return start.get_slice(end)
-
-
- def markup_escape(text):
- return saxutils.escape(text)
-
-
- def spaces_instead_of_tabs(view, text):
- if not view.get_insert_spaces_instead_of_tabs():
- return text
- return text.replace('\t', view.get_tab_width() * ' ')
-
-
- def insert_with_indent(view, piter, text, indentfirst = True, context = None):
- text = spaces_instead_of_tabs(view, text)
- lines = text.split('\n')
- view.get_buffer().set_data('GeditSnippetsPluginContext', context)
- if len(lines) == 1:
- view.get_buffer().insert(piter, text)
- else:
- indent = compute_indentation(view, piter)
- text = ''
- for i in range(0, len(lines)):
- if indentfirst or i > 0:
- text += indent + lines[i] + '\n'
- continue
- text += lines[i] + '\n'
-
- view.get_buffer().insert(piter, text[:-1])
- view.get_buffer().set_data('GeditSnippetsPluginContext', None)
-
-
- def get_buffer_context(buf):
- return buf.get_data('GeditSnippetsPluginContext')
-
-
- def snippets_debug(*s):
- pass
-
-
- def write_xml(node, f, cdata_nodes = ()):
- if not node is not None:
- raise AssertionError
- if not hasattr(f, 'write'):
- f = open(f, 'wb')
-
- f.write("<?xml version='1.0' encoding='utf-8'?>\n")
- _write_node(node, f, cdata_nodes)
-
-
- def _write_indent(file, text, indent):
- file.write(' ' * indent + text)
-
-
- def _write_node(node, file, cdata_nodes = (), indent = 0):
- tag = node.tag
- if node is Comment:
- _write_indent(file, '<!-- %s -->\n' % _escape_cdata(node.text), indent)
- elif node is ProcessingInstruction:
- _write_indent(file, '<?%s?>\n' % _escape_cdata(node.text), indent)
- else:
- items = node.items()
- if items and node.text or len(node):
- _write_indent(file, '<' + tag.encode('utf-8'), indent)
- if items:
- items.sort()
- for k, v in items:
- file.write(' %s="%s"' % (k.encode('utf-8'), _escape_attrib(v)))
-
-
- if node.text or len(node):
- file.write('>')
- if node.text and node.text.strip() != '':
- if tag in cdata_nodes:
- file.write(_cdata(node.text))
- else:
- file.write(_escape_cdata(node.text))
- else:
- file.write('\n')
- for n in node:
- _write_node(n, file, cdata_nodes, indent + 1)
-
- if not len(node):
- file.write('</' + tag.encode('utf-8') + '>\n')
- else:
- _write_indent(file, '</' + tag.encode('utf-8') + '>\n', indent)
- else:
- file.write(' />\n')
-
- if node.tail and node.tail.strip() != '':
- file.write(_escape_cdata(node.tail))
-
-
-
- def _cdata(text, replace = string.replace):
- text = text.encode('utf-8')
- return '<![CDATA[' + replace(text, ']]>', ']]]]><![CDATA[>') + ']]>'
-
-
- def _escape_cdata(text, replace = string.replace):
- text = text.encode('utf-8')
- text = replace(text, '&', '&')
- text = replace(text, '<', '<')
- text = replace(text, '>', '>')
- return text
-
-
- def _escape_attrib(text, replace = string.replace):
- text = text.encode('utf-8')
- text = replace(text, '&', '&')
- text = replace(text, "'", ''')
- text = replace(text, '"', '"')
- text = replace(text, '<', '<')
- text = replace(text, '>', '>')
- return text
-
-
- def buffer_word_boundary(buf):
- iter = buf.get_iter_at_mark(buf.get_insert())
- start = iter.copy()
- if not iter.starts_word():
- start.backward_word_start()
-
- if not iter.ends_word():
- iter.forward_word_end()
-
- return (start, iter)
-
-
- def drop_get_uris(selection):
- lines = re.split('\\s*[\\n\\r]+\\s*', selection.data.strip())
- result = []
- for line in lines:
- if not line.startswith('#'):
- result.append(line)
- continue
-
- return result
-
-